home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Amiga Games: Greatest Hits 1996
/
Amiga Games: Greatest Hits 1996.iso
/
archive
/
userbox
/
publicdomain
/
engclock_v7.0.lha
/
EngClock_v7.0
/
EngClock7_Source
/
globals.h
< prev
next >
Wrap
C/C++ Source or Header
|
1996-05-19
|
10KB
|
392 lines
/* Global gear for EngClock */
/************* Includes ************/
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <intuition/intuition.h>
#include <dos/dos.h>
#include <dos/dostags.h>
#include <exec/devices.h>
#include <exec/execbase.h>
#include <exec/exec.h>
#include <exec/memory.h>
#include <devices/timer.h>
#include <clib/intuition_protos.h>
#include <libraries/diskfont.h>
#include <clib/diskfont_protos.h>
#include <graphics/scale.h>
#include <clib/graphics_protos.h>
#include <graphics/gfxbase.h>
#include <clib/exec_protos.h>
#include <clib/utility_protos.h>
//#include <proto/timer.h>
#include <clib/timer_protos.h>
#include <pragmas/timer_pragmas.h>
#include <utility/utility.h>
#include <utility/date.h>
#include <workbench/startup.h>
#include <clib/dos_protos.h>
#include <clib/gadtools_protos.h>
#include <datatypes/pictureclass.h>
#include <clib/commodities_protos.h>
/************** Defines ***************/
#define VERS 1 /* Current version of preferences file */
#define PREFS_FILE "s:EngClock.prefs"
#define GUIDECOMMAND "Amigaguide Engclock.guide"
#define ID "EngCPrefs"
/* Following for locale */
#define ENGLISH 1
#define FRENCH 2
#define SPANISH 3
/******** Global Variables *********/
BPTR handle; /* Used by all file-handing operations */
char tmp[50],tmp2[50],line1[200], line2[200];
char *engnums[60];
int memmins, memhours;
BOOL afternoon; /* TRUE = pm, FALSE = am */
/* Following for Locale */
int language;
BOOL locale=TRUE;
/****** Global Structures *******/
struct Screen *pubscreen=NULL; /* Public screen structure */
char screen[200]; /* Name of above */
char *screenptr = NULL;
/* Quick assignment for fonts */
struct TextAttr font1=
{
"topaz.font",
TOPAZ_EIGHTY,
(UBYTE)NULL,
FPF_ROMFONT
};
struct Event {
BOOL used;
int type; /* Type of event */
int hours; /* Time of event */
int minutes;
int timecode;
char message[256];
int day;
int month;
int year;
BOOL enabledate;
int freq;
};
struct {
/* Prefs structure used for preferences file format */
char header[10]; /* I.D. Header */
int vers; /* Version of preferences file */
int x; /* X dimension of window when saved */
int y; /* Y dimension of window when saved */
int width; /* Width of window when saved */
int height; /* Height of window when saved */
int planguage; /* Language selected (menu) when saved, low pri */
int just; /* Justification of text, 0=Left, 1=Centre */
short date; /* Display date?, 0 = No, 1=Yes */
short wtf; /* Window to front? */
int time_col[8];
int date_col[8];
short autoadjust; /* Auto adjust ? */
char backdrop[256];
char pub[139];
char accent[256]; /* Language file for tRanslate */
char tkey[100];
char hkey[100];
struct Event events[11]; /* For the alarm! */
}prefs;
struct {
/* Time structure, set up by gettime() and used globally */
int hours; /* Number of hours since midnight on system clock */
int seconds; /* Number of seconds */
int minutes; /* Number of minutes */
int years; /* Current year */
int days; /* Date in current month */
int months; /* Current month */
int wday; /* Day in the week 0-6 (starting Sunday) */
}time;
struct {
/* Font structure, set up by getfont() and used globally */
int x; /* Width of default graphic font */
int y; /* Height of default graphic font */
}font;
struct IntuiMessage *message; /* Set up our message pointer */
extern struct ExecBase *SysBase;
struct timerequest *TimerIO=NULL;
struct Library *TimerBase=NULL;
/* Following for screen information routine */
#include "EngClock_Screen.h"
int exit_flag=0;
struct Window *win_p; /* Our window pointer */
struct NewWindow win1; /* Window structure - assigned later */
/* IntuiText definitions */
/* Main IntuiText for the window text */
struct IntuiText int_text= {
1,0,JAM1,16,9,NULL,NULL,NULL };
struct IntuiText date_text = {
1,0,JAM1,16,19,NULL,NULL,NULL };
struct IntuiText req_text= {
1,0,JAM1,16,9,NULL,NULL,NULL };
struct IntuiText ok_text={
1,0,JAM1,16,9,NULL,NULL,NULL };
/* Menu definitions and structure follow... */
/* First the IntuiText strings for each menu item */
struct IntuiText menu_text1 = {
2,0,JAM1,0,1,NULL,"Set Prefs...",NULL };
struct IntuiText menu_text2 = {
2,0,JAM1,0,1,NULL,"Jump",NULL };
struct IntuiText menu_text3 = {
2,0,JAM1,0,1,NULL,"About",NULL };
struct IntuiText menu_text4 = {
2,0,JAM1,0,1,NULL,"Quit",NULL };
/* And now the menu bits (in reverse order) */
struct MenuItem menu_item4 = {
NULL,0,30,150,10,ITEMTEXT|
ITEMENABLED|
COMMSEQ|
HIGHCOMP, 0x00000001,(APTR)&menu_text4,NULL,'Q',NULL,
MENUNULL,};
struct MenuItem menu_item3 = {
&menu_item4,0,20,150,10,ITEMTEXT|
ITEMENABLED|
HIGHCOMP|
COMMSEQ,0x00000001,(APTR) &menu_text3,NULL,'A',NULL,
MENUNULL,};
struct MenuItem menu_item2 = {
&menu_item3,0,10,150,10,ITEMTEXT|
ITEMENABLED|
COMMSEQ|
HIGHCOMP,0x00000001,(APTR) &menu_text2,NULL,'J',NULL,
MENUNULL,};
struct MenuItem menu_item1 = {
&menu_item2,0,0,150,10,ITEMTEXT|
ITEMENABLED|
COMMSEQ|
HIGHCOMP,0x00000001,(APTR) &menu_text1,NULL,'S',NULL,
MENUNULL,};
/* Finally the menus themselves */
struct Menu menu1 = {
NULL,0,0,70,0,MENUENABLED,"Project",&menu_item1 };
/* Global pointers for data used in date */
char *months_data[13] = {
"",
"January",
"February",
"March",
"April",
"May",
"June",
"July",
"August",
"September",
"October",
"November",
"December"
};
char *months_data_french[13] = {
"",
"Janvier",
"Février",
"Mars",
"Avril",
"Mai",
"Juin",
"Juillet",
"Août",
"Septembre",
"Octobre",
"Novembre",
"Décembre"
};
char *months_data_spanish[13]={
"",
"enero",
"febrero",
"marzo",
"abril",
"mayo",
"junio",
"julio",
"agosto",
"septiembre",
"octubre",
"noviembre",
"diciembre"
};
char *days_data[7] = {
"Sunday",
"Monday",
"Tuesday",
"Wednesday",
"Thursday",
"Friday",
"Saturday"
};
char *days_data_french[7] = {
"Dimanche",
"Lundi",
"Mardi",
"Mercredi",
"Jeudi",
"Vendredi",
"Samedi"
};
char *days_data_spanish[7] = {
"Domingo",
"Lunes",
"Martes",
"Miércoles",
"Jueves",
"Viernes",
"Sábado"
};
BOOL Wb; /* Workbench (TRUE) or CLI (FALSE) */
struct WBStartup *Wbs;
/* Stuff for backdrops */
struct Picture
{
struct BitMapHeader bmhd; /* format and infos */
struct BitMap *bmap; /* bitmap */
ULONG *palette; /* color table in LoadRGB32() format */
LONG palette_size; /* mem usage */
LONG palette_entries; /* number of colors */
ULONG display_ID; /* video mode */
UBYTE *author; /* author info */
UBYTE *copyright; /* copyright info */
UBYTE *annotation; /* other info */
LONG author_size; /* mem usage */
LONG copyright_size; /* mem usage */
LONG annotation_size; /* mem usage */
};
struct Picture piccy;
BOOL ispicture=FALSE;
struct TextAttr about_font = {
NULL,
NULL,
FSF_UNDERLINED,
NULL
};
/* Special access variables */
extern struct MsgPort *CxMsgPort;
extern struct MsgPort *CxHotKey1;
extern struct MsgPort *CxHotKey2;
extern struct MsgPort *RexxPort;
extern CxMsg *CxMessage;
/* Lib bases */
struct IntuitionBase *IntuitionBase=NULL;
struct GfxBase *GfxBase=NULL;
struct Library *UtilityBase=NULL;
struct Library *GadToolsBase=NULL;
struct Library *DiskfontBase=NULL;
struct Library *CxBase=NULL;
struct Library *TranslatorBase=NULL;
struct Library *AslBase=NULL;
struct Library *IFFParseBase=NULL;
struct Library *DataTypesBase=NULL;
struct Library *RexxSysBase=NULL;
extern struct Library *DOSBase;
/********* Prototypes ************/
short main(int argc, char *argv[]);
void gettime(void);
short readprefs(void);
void setupengnums(void);
void openall(void);
void closeall(void);
void getfont(void);
void clearwindow(void);
short setupmainwindow(void);
short changemenu(void);
short refreshwindow(void);
void setupdate_english(void);
void setupdate_french(void);
void setupdate_spanish(void);
extern void process_alarm(void);
extern BOOL talk(char *text);
extern int prefsgui(void);
extern BOOL jump(void);
extern short getlocale(void);
extern char *trans(char *text);
extern char *findday(int preset2);
extern char datey[200];
extern BOOL playsam(char *esvxname);
extern void msg(char *msg);
extern BOOL loadpic(char *fname, struct Screen *scr);
extern void pattern(struct Window *win_p, struct Screen *scr,struct Picture pic);
extern void unloadpic(struct Picture pic);
extern BOOL cxinit(void);
extern void cxclose(void);
extern BOOL wb_ask(char *body, char *opt1, char *opt2);
extern void autoadjust(void);
extern void arexxclose(void);
extern void process_arexx(void);
extern BOOL arexxinit(void);
extern BOOL about(void);
extern void process_args(int count, char *args[]);